package com.luoy.util;

import java.util.LinkedList;
import java.util.List;

/**
 * 删除数组元素
 *
 * @author luoyuan
 * @create 2018-08-12-上午9:50
 */
public class ArrayUtil {
    /**
     * 删除数组元素
     *
     * @param arrs
     * @param index
     * @param <T>
     * @return
     */
    public static <T> T[] removeArrayItem(T[] arrs, int index) {
        int len = arrs.length;
        if (index < 0 || index >= len) {
            throw new IllegalArgumentException("数组下标越界");
        }
        List<T> list = new LinkedList<T>();
        for (int i = 0; i < len; i++) {
            if (i != index) {
                list.add(arrs[i]);
            }
        }
        // 这里将改变传入的数组参数 arrs 的值
        arrs = list.toArray(arrs);
        return java.util.Arrays.copyOf(arrs, arrs.length - 1);
    }

    /**
     * 获取数组的索引
     *
     * @param array
     * @param value
     * @return
     */
    public static <T> int getIndex(T[] array, T value) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == value) {
                return i;
            }
        }
        //当if条件不成立时，默认返回一个负数值-1
        return -1;
    }
}
